package com.harmontronics.hanma.paas.paas.domain.app.repository.po;

import com.baomidou.mybatisplus.annotation.*;
import com.harmontronics.hanma.paas.paas.domain.app.entity.valueobject.EntityModelStatusEnum;
import com.harmontronics.hanma.paas.paas.domain.app.entity.valueobject.EntityModelTypeEnum;
import com.harmontronics.hanma.paas.paas.domain.app.entity.valueobject.RelationTypeEnum;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 实体模型
 *
 * @author paas-generator
 * @email paas-generator@harmontronics.com
 * @date 2021-03-31 09:10:30
 */
@Data
@TableName("hm_entity_model")
public class HmEntityModelPO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 唯一键
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 名称
     */
    private String name;
    /**
     * 编码
     */
    private String code;
    /**
     * 数据类型
     */
    @TableField("type_")
    private EntityModelTypeEnum type;

    /**
     * 关联类型
     */
    private RelationTypeEnum relationType;

    /**
     * 配置信息,当字段的数据类型为关联单选/多选、子表时需要
     */
    private String config;


    /**
     * 状态 已发布 草稿
     */
    private EntityModelStatusEnum status;

    /**
     * 是否为系统字段
     */
    private Boolean builtIn;

    /**
     * 模型ID
     */
    private Long modelId;
    /**
     * 数据长度
     */
    @TableField("length_")
    private Integer length;
    /**
     * 是否为空
     */
    @TableField("nullable_")
    private Integer nullable;
    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createDate;
    /**
     * 修改人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime modifyDate;
    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String modifyBy;

}
